
package pas.beans;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import pas.conexion.Conexion;

/**
 *
 * @author Julio
 */
public class Pas_Persona {
    
    private Integer IdPersona;
    private String NumeroDoc;
    private String nombre;
    private String ApePaterno;
    private String ApeMaterno;
    private String direccion;
    
    private Calendar fecha_reg;
    private Calendar fecha_mod;
    private boolean eliminado;
    
    private Integer fk_idusuario_crea;
    private Integer fk_idusuario_mod;
    
    private Integer fk_idtipodocumento;
    
    private Pas_TipoDocumento TipoDocumento;
    
    private String accion;

    public Pas_Persona() {
        this.IdPersona = 0;
        this.NumeroDoc = "";
        this.nombre = "";
        this.ApePaterno = "";
        this.ApeMaterno = "";
        this.direccion = "";        
        this.fk_idusuario_crea = 0;
        this.fk_idusuario_mod = 0;
        this.fk_idtipodocumento = 0;        
    }
    
   

    public String getAccion() {
        return accion;
    }

    public void setAccion(String accion) {
        this.accion = accion;
    }


    public Integer getFk_idtipodocumento() {
        return fk_idtipodocumento;
    }

    public void setFk_idtipodocumento(Integer fk_idtipodocumento) {
        this.fk_idtipodocumento = fk_idtipodocumento;
    }
    
    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public boolean isEliminado() {
        return eliminado;
    }

    public void setEliminado(boolean eliminado) {
        this.eliminado = eliminado;
    }

    public Calendar getFecha_mod() {
        return fecha_mod;
    }

    public void setFecha_mod(Calendar fecha_mod) {
        this.fecha_mod = fecha_mod;
    }

    public Calendar getFecha_reg() {
        return fecha_reg;
    }

    public void setFecha_reg(Calendar fecha_reg) {
        this.fecha_reg = fecha_reg;
    }

    public Integer getFk_idusuario_crea() {
        return fk_idusuario_crea;
    }

    public void setFk_idusuario_crea(Integer fk_idusuario_crea) {
        this.fk_idusuario_crea = fk_idusuario_crea;
    }

    public Integer getFk_idusuario_mod() {
        return fk_idusuario_mod;
    }

    public void setFk_idusuario_mod(Integer fk_idusuario_mod) {
        this.fk_idusuario_mod = fk_idusuario_mod;
    }
    
    

    public String getApeMaterno() {
        return ApeMaterno;
    }

    public void setApeMaterno(String ApeMaterno) {
        this.ApeMaterno = ApeMaterno;
    }

    public String getApePaterno() {
        return ApePaterno;
    }

    public void setApePaterno(String ApePaterno) {
        this.ApePaterno = ApePaterno;
    }

    public Integer getIdPersona() {
        return IdPersona;
    }

    public void setIdPersona(Integer IdPersona) {
        this.IdPersona = IdPersona;
    }

    public String getNumeroDoc() {
        return NumeroDoc;
    }

    public void setNumeroDoc(String NumeroDoc) {
        this.NumeroDoc = NumeroDoc;
    }

    public Pas_TipoDocumento getTipoDocumento() {
        return TipoDocumento;
    }

    public void setTipoDocumento(Pas_TipoDocumento TipoDocumento) {
        this.TipoDocumento = TipoDocumento;
    }


    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    
     public Integer operaciones(Pas_Persona v) {
        String inserto;        
        CallableStatement ps = null;
        ResultSet rs= null;
        Integer id = 0;
        Connection con = Conexion.getConexion();        
        try {
            ps = con.prepareCall("{call mante_pas_persona_operacion(?,?,?,?,?,?,?,?,?,?)}");
            ps.setInt(1, v.getIdPersona());
            ps.setString(2, v.getNumeroDoc());
            ps.setString(3, v.getNombre());
            ps.setString(4, v.getApePaterno());
            ps.setString(5, v.getApeMaterno());
            ps.setString(6, v.getDireccion());
            ps.setInt(7, v.getFk_idtipodocumento());
            ps.setInt(8, v.getFk_idusuario_crea());
            ps.setInt(9, v.getFk_idusuario_mod());
            ps.setString(10, v.getAccion());
            rs  = ps.executeQuery();//AQUI
            if (rs.next()) {
                if (v.getAccion().equals("U")) {
                    inserto = "La operacion fue actualizado correctamente";
                    id = rs.getInt(1);
                } else {
                    if (v.getAccion().equals("I")) {
                        inserto = "La operacion fue insertado correctamente";
                        id = rs.getInt(1);
                    } else {
                        inserto = "La operacion fue eliminado correctamente";
                        id = rs.getInt(1);
                    }
                }
            } else {
                inserto = "No se pudo insertar ";
            }
        } catch (Exception ex) {
            inserto = ex.getMessage();
            System.out.println("fallo ERROR "+ex.getMessage());            
        } finally {
            try {
                rs.close();
                ps.close();
                con.close();
            } catch (Exception ex) {
            }
        }
        return id;
    }   
     
     
          ///OBTENER TODAS LAS PLACAS DE UNA SOLA UBICACION
    public static Pas_Persona listarPersona_One( String numerdoc) {
        Pas_Persona v = new Pas_Persona();
        Connection cn = null;
        PreparedStatement cl = null;
        ResultSet rs = null;
        
        try {
            //Nombre del procedimiento almacenado
            String call = "SELECT * FROM view_pas_persona_listarpersona where numerodocumento='"+numerdoc+"'";
            cn = Conexion.getConexion();
            cl = cn.prepareStatement(call);          
            //La sentencia lo almacenamos en un resulset           
            rs = cl.executeQuery();
            //Consultamos si hay datos para recorrerlo
            //e insertarlo en nuestro array
            while (rs.next()) {                
                v.setIdPersona(rs.getInt(1));
                v.setNumeroDoc(rs.getString(2));
                v.setNombre(rs.getString(3));
                v.setApePaterno(rs.getString(4));
                v.setApeMaterno(rs.getString(5));
                v.setDireccion(rs.getString(6));
            }
           
        } catch (SQLException e) {
            e.printStackTrace();
            Conexion.deshacerCambios(cn);
            Conexion.cerrarPrep(cl);
            Conexion.cerrarConexion(cn);            
        } catch (Exception e) {
             e.printStackTrace();
            Conexion.deshacerCambios(cn);
            Conexion.cerrarPrep(cl);
            Conexion.cerrarConexion(cn);           
        }finally {
            try {
                 rs.close();
                cl.close();
                cn.close();
            } catch (Exception ex) {
            }
        }
        return v;
    }
    
    
    
    
    
}
